A virtual machine (VM) is a software implementation of a physical computer. Computer programs designed to execute on the physical machine execute in a similar way when executed on a VM. A VM provides a complete system platform to support a full operating system (OS). A physical machine can be shared between users using different VMs, each running a different OS.
Modern processor architectures have enabled virtualization techniques that allow multiple operating systems and VMs to run on a single physical machine. These techniques use a hypervisor layer that runs directly on the physical hardware and mediates accesses to physical hardware by providing a virtual hardware layer to the operating systems running in each virtual machine. The hypervisor can operate on the physical machine in conjunction with a ‘native VM’. Alternatively, the hypervisor can operate within an operating system running on the physical machine, in conjunction with a ‘hosted VM’ operating at a higher software level.
Examples of VM technology are:                Linux® Kernel-Based Virtual Machine (KVM), which allows one or more Linux or Microsoft® Windows® virtual machines to be run on top of an underlying Linux that runs KVM.        Xen, which allows a guest (virtualized) Linux to be run on top of Linux.        Parallels, which allows Linux and Windows on top of Mac OS X.        VMWare which allows Linux and Windows systems on top of Mac OS X, Windows and Linux systems.(Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.)        
A Trusted Platform Module (TPM) is a system compliant with a security specification defined by the Trusted Computing Group (TCG). It is typically implemented as a component of a computer system that provides cryptographic keys that protect information. A TPM can also provide remote attestation that allow changes to a computer system to be detected by authorised parties. TPM can either be implemented in hardware, in software, or as a combination.
A virtual TPM (vTPM) provides TPM services to a VM running on a hypervisor. A vTPM is defined as a TPM implemented in software—it can provide TPM services to anything, not just VMs. The VM and its associated vTPM are securely maintained throughout the life of the VM, even if the VM migrates from one physical machine to another. The vTPM must also maintain a secure association to its related trusted computing base.
The vTPM can be hosted in user space in the VM, in a secure coprocessor, or hosted in a separate VM of its own.
A VM deployed into a data-centre will have many requirements about the environment in which it runs. These could range from the type of hardware or some low level system configuration that is out of sight and control of the VM. Such requirements may be specified in a Service Level Agreement (SLA) and may form part of industry regulations. As a VM migrates from system to system it is easy for one of these requirements to be broken. Also as administrators make changes to their systems they may be unaware of the VM's requirements, again breaking them.
For a system owner who has deployed a VM in a remote data-centre there will be great difficulty in validating that these requirements are being met. Even a system owner who can see the data-centre systems still may find it inconvenient to validate that their requirements are being met.
Although the use of VMs provides cost benefits to platform owners, VMs need to be protected from malicious attacks. One approach is to use a root of trust, such as a hardware based Trusted Platform Module (TPM), which assesses the integrity of all software running on a platform, including the operating system, hypervisor, and applications running within VMs. A TPM allows remote attestation by digitally signing cryptographic hashes of software components. In this context: “attestation” means to provide evidence of the exact software/hardware components that were booted; “verification” means to decide whether or not these values are good; “validation” means the effect of attestation, verification, or a combination of them.
TPMs and Trusted Computing do not protect against situations which may break a service level agreement (SLA).
Therefore, there is a need in the art to address the shortcomings of known trusted computing systems.